The Products page allows you to create the software products that you
want to offer to the user.
To add a product, use the Insert New Product button. You can
then edit the newly added product to enter the product information and define
the licensing properties. For an application (protected by a Program ID), you
can make it as many products as you want by defining different licensing
properties. For instance, a product is licensed as a trial version, while
another product is licensed as a full version.
The Define Programs/Modules/Items button allows you to open the
pane (to the left) that you can edit the program, module, and item names. So
you can easily refer to your programs, modules, and items by names, instead of
Program IDs, Module IDs, and Item IDs. In the Products table, you can also
click on a Program ID to open the pane to view or edit the program, module, and
item names.
To view the licensing properties of a product, you can click on the MasterID and MasterLicense. The
license information will be shown under the menu bar.
If you distribute and deploy your application using the RKUB (Remote
Key Update Broadcast) feature, you can use the Encode RKU File button to
create the RKU file from the Products table.
The fields in the Products table can be grouped into the following
categories.
The following fields allow you to enter basic information about the
product.
Specify the product name.
Specify the Program ID of the application.
Specify the full product title.
A pair of Master ID and Master License is the encoded Key Properties,
which is used as the master license for the product. The Activation Server uses
the product Master License to generate the License Key in response to the
license activation request. You can generate the Master ID and Master License
by using the LicenseKey Manager tool.
1. Run LicenseKey
Manager.
2. From the Tools menu,
select Generate Master ID.
3. In the Generate Master ID
dialog box, from the Program ID drop-down list, select the Program ID of
your application. Then, select the appropriate checkboxes of the flags, and
click the Generate button. A Master ID is generated.
4. Copy the Master ID. Then, go
to the Main tab of the Key Properties pane. Paste the Master ID
in the Registration ID field, and click the Check button.
5. The Identification
field shows the Key ID, Program ID, and flag decoded from the Master ID.
6. From the Implementation
drop-down list, select the appropriate implementation and specify the limits as
you want.
7. From the Note pane,
you can enter notes about the Master ID and Master License in the Messages
field.
8. From the Main tab of
the Key Properties pane, click the Generate button. The Master
License is shown in the License Key field.
Besides Master ID and Master License, the following fields allow you to
specify additional licensing properties.
Specify the maximum number of activations allowed. If you want to
provide replacement licenses to the user, set the MaxActivation
more than one, and -1 is for unlimited replacement licenses. To allow unlimited
activations, set the MaxActivation to -1.
Specify the default subscription period in days, which is used to
calculate the SubscriptionExpDate field for the
account subscription in the Accounts table.
Specify the activation policy how the Activation Server responds to the
license activation request. The following policies are available.
·
[AcceptAll] Single Machine. The single machine policy
allows the Activation Server to maintain the current license status of the
protected application. Specifically, when the account has the LicKeyTran sent from the application, the Activation Server
will use it to generate the License Key in response to the activation request.
Otherwise, it uses the MasterLicenseCust (if
available) or MasterLicense respectively.
The default [AcceptAll] policy accepts the activation request regardless
of the hardware signatures. This however can allow license activation from any
machine.
To add more security that
subsequent activations for a replacement license must come from the same
machine, you can choose one of the following options. To use this feature, you
must enable the extended Registration ID format with hardware signatures in
the protected application. The Activation Server will respond to the activation
request by verifying first if the hardware signatures match those from the
previous activation, before generating the License Key.
·
[Low] Matched Any Signatures. The Activation Server
accepts the activation request if any signatures match those from the previous
activation.
·
[Medium] Matched HDD or CPU/BIOS/Ethernet Signatures. The Activation Server
accepts the activation request if the HDD or CPU/BIOS/Ethernet signatures match
those from the previous activation.
·
[MediumHigh] Matched
CPU/BIOS/Ethernet Signatures. The Activation Server accepts the activation
request if the CPU/BIOS/Ethernet signatures match those from the previous
activation.
·
[High] Matched HDD/CPU/BIOS/Ethernet Signatures. The Activation Server
accepts the activation request if all HDD/CPU/BIOS/Ethernet signatures match
those from the previous activation.
·
[SecureEvaluation] Different
Hardware Signatures. The Activation Server accepts the activation request if one or more of
the hardware signatures is different from those from the previous activation.
In other words, the request must be from a different computer. In order to use
this policy, you must protect your application using the Secure Evaluation mode. Besides, it
is recommended that you enable the Ethernet signature for the extended Registration ID format since each computer
typically has a unique MAC address; while it is possible that two computers
might have the identical HDD/CPU/BIOS signatures.
·
[AcceptAll] Multiple
Machines. In
the policy for multiple machines, the Activation Server disables the ability to
transfer license between the protected application and the server.
Specifically, it does not maintain the current license status of the
application. During the license deactivation request, the LicKeyTran
sent from the application is not saved. So whenever the user activates the
application, the Activation Server only uses the MasterLicenseCust
(if available) or MasterLicense respectively to
generate the License Key in response to the license activation request.
NOTE: While the [AcceptAll] Single Machine policy
can maintain the current license status of the application during license
transfer, it has a side effect to time-based licensing such as subscription.
Specifically, when the license is deactivated and transferred to the server,
the licensing properties including time limits (e.g. day count) are preserved
in the LicKeyTran. With the Activation Server version
2.0.9.25 or later, you can additionally enable the option to maintain the
integrity of time-based licensing for license transfer on the ManagedExpiration mode
by setting the TransferLicenseOnManagedExpiration with value managed in the Web.Config file. As a result, when
the license is reactivated, the server will automatically adjust the time
limits based on the server time. |
The ManagedExpiration checkbox enables the
Activation Server to manage and maintain the integrity of the expiration for
time-based licensing such as subscription. It applies when the Master License
contains the expiration or period limit. Specifically, the Activation Server
keeps track of the account activations and automatically calculates the current
available MaxDayPeriod (based on the server time)
when generating the License Key in response to the license activation request.
Here is an example how the ManagedExpiration
feature works. Assume the Master License contains the period limit with MaxDayPeriod of 30 days, and you set the MaxActivation more than one to allow replacement licenses.
The user first activates the license on day one. On day 10, the user activates
again for a replacement license. Without ManagedExpiration,
the Activation Server simply uses the Master License to generate the License
Key, which results in the license with MaxDayPeriod
of 30 days. When ManagedExpiration is enabled, the
Activation Server uses the Master License and calculates the current available MaxDayPeriod before generating the License Key, which
results in the license with MaxDayPeriod of 20 days.
Accordingly, if the user activates again on day 18, the Activation Server will
generate and return the license with MaxDayPeriod of
12 days.
The tables below summarize how the Activation Server calculates the
current available MaxDayPeriod in different
scenarios, in order to generate the License Key in response to the license
activation request. When an account has license upgrades, the ManagedExpiration feature also applies to calculate the
available MaxDayPeriod for the MasterLicenseCust,
which is used to generate the License Key after the upgrade.
General Scenarios |
|
First-Time Activation |
·
MaxDayPeriod
= Products.MasterLicense.MaxDayPeriod ·
Generate and return License Key. ·
Action(‘Activated’),
DateTime recorded in Activation Logs. |
Subsequent Activations (Replacement
Licenses) |
·
MaxDayPeriod
= Products.MasterLicense.MaxDayPeriod – (CurrentDate – ActivationLogs.Action(‘Activated’).DateTime) ·
Generate and return License Key. ·
Action(‘Replaced’), DateTime recorded in Activation Logs. |
Upgrade Scenarios |
|
First Upgrade (performed under the
Control page) |
·
MasterLicenseCust.MaxDayPeriod
= Products.MasterLicense.MaxDayPeriod – (CurrentDate
– ActivationLogs.Action(‘Activated’).DateTime) + Upgrades.MasterLicense.MaxDayPeriod ·
Generate MasterLicenseCust.
·
Update Acccounts.MasterLicenseCust,
enable Accounts.Reactivation and
increment Accounts.LicUpgradeID. ·
MasterLicenseCust,
DateTime recorded in Upgrade Logs. |
Reactivation for First Upgrade and Subsequent Activations |
·
MaxDayPeriod
= MasterLicenseCust.MaxDayPeriod – (CurrentDate – UpgradeLogs(First).DateTime) ·
Generate and return License Key. ·
Action(‘Customized’), DateTime recorded in Activation Logs. |
Next Upgrade (performed under the Control
page) |
·
MasterLicenseCust.MaxDayPeriod
= CurrentMasterLicenseCust.MaxDayPeriod – (CurrentDate
– UpgradeLogs(Last).DateTime)
+ Upgrades.MasterLicense.MaxDayPeriod ·
Generate MasterLicenseCust.
·
Update Acccounts.MasterLicenseCust,
enable Accounts.Reactivation and
increment Accounts.LicUpgradeID. ·
MasterLicenseCust,
DateTime recorded in Upgrade Logs. |
Reactivation for Next Upgrade and
Subsequent Activations |
·
MaxDayPeriod
= MasterLicenseCust.MaxDayPeriod – (CurrentDate – UpgradeLogs(Last).DateTime) ·
Generate and return License Key. ·
Action(‘Customized’), DateTime recorded in Activation Logs. |
The ManagedExecution checkbox enables the
Activation Server to manage and maintain the integrity of the execution limit for
usage-based licensing. It applies when the Master License contains the
execution limit. Specifically, the Activation Server can keep track of the
current license status of the Key on the client machine through the LicKeyTran – the License Key sent from the application
during the license deactivation request. The Activation Server then extracts
the current execution count and uses it to set the InitExec
property when generating the License Key in response to the license activation
request. The InitExec is then used by the protected
application to initialize the execution count to the Key.
The tables below summarize how the Activation Server handles the InitExec in different scenarios, in order to generate the
License Key in response to the license activation request. The InitExec can set in 3 modes: Reset, None, and the value for
the execution count.
General Scenarios |
|
First-Time Activation |
·
InitExec
= Reset Mode (reset ExecCount of the Key to 0) ·
Generate and return License Key. ·
Action(‘Activated’), DateTime recorded in Activation Logs. |
Subsequent Activations (Replacement
Licenses) |
·
InitExec
= None Mode (leave ExecCount of the Key as is) ·
Generate and return License Key. ·
Action(‘Replaced’), DateTime recorded in Activation Logs. NOTE: If the subsequent activation is
from another machine, ExecCount will start at 0. |
Upgrade Scenarios |
|
First Upgrade (performed under the
Control page) |
·
MasterLicenseCust.MaxExec
= Products.MasterLicense.MaxExec
+ Upgrades.MasterLicense.MaxExec ·
Generate MasterLicenseCust.
·
Update Acccounts.MasterLicenseCust,
enable Accounts.Reactivation and
increment Accounts.LicUpgradeID. ·
MasterLicenseCust,
DateTime recorded in Upgrade Logs. |
Reactivation for First Upgrade and Subsequent Activations |
·
MaxExec
= MasterLicenseCust.MaxExec ·
InitExec
= ClientKey.ExecCount ·
Generate and return License Key. ·
Action(‘Customized’), DateTime recorded in Activation Logs. |
Next Upgrade (performed under the
Control page) |
·
MasterLicenseCust.MaxExec
= CurrentMasterLicenseCust.MaxExec + Upgrades.MasterLicense.MaxExec ·
Generate MasterLicenseCust.
·
Update Acccounts.MasterLicenseCust,
enable Accounts.Reactivation and
increment Accounts.LicUpgradeID. ·
MasterLicenseCust,
DateTime recorded in Upgrade Logs. |
Reactivation for Next Upgrade and
Subsequent Activations |
·
MaxExec
= MasterLicenseCust.MaxExec ·
InitExec
= ClientKey.ExecCount ·
Generate and return License Key. ·
Action(‘Customized’), DateTime recorded in Activation Logs. |
NOTE: The ManagedExpiration and ManagedExecution features should be used when you create
the upgrades through the Upgrades page, instead of specifying the MasterLicenseCust directly in the Accounts page. |
NOTE: When using the ManagedExpiration and ManagedExecution features, the Master License for the
upgrades must have the Add to existing
Limit option enabled. The Activation Server
will upgrade the license, and manage the expiration and execution as
described above. After the upgrade, the MasterLicenseCust
will clear the Add to existing
Limit option. As a result, Key Properties
from the MasterLicenseCust will be updated (but not
added) to the Key on the user machine. |
NOTE: The ManagedExecution feature is not backward
compatible with older ElecKey versions. For more
details, see Appendix:
ManagedExecution in Activation Server and
Compatibility. |
Specify the RKU attributes of the product for the RKU file. If you want to deploy the Remote Key Update
Broadcast (RKUB) feature, you can use the Encode RKU File button to generate
the RKU file.
The NonTransferable checkbox allows you to
disable the ability to transfer license between the protected application and
the server, in case it is not needed. By default, during the license
deactivation request, the Activation Server maintains the current license
status by saving the LicKeyTran sent from the
application. When the NonTransferable checkbox is
enabled, the LicKeyTran is not saved. So whenever the
user activates the application, the Activation Server only uses the MasterLicenseCust (if available) or MasterLicense
respectively to generate the License Key in response to the license activation
request.
The following fields allow you to specify the settings for delivering
the product license to the user.
Specify the folder that contains the email template files (EmailBody.txt
and EmailSubject.txt). If not specified, the Activation Server will use
the default email template files in its main folder.
Specify the download URL of the product, to be shown under the <ProductURL> tag in the email template. Besides, the
field can also be used for other purposes to show the specified value in the
license delivery email.
Specify the upgrade URL of the product (e.g. https://demo.eleckey.net/
PayPal_Upgrade.aspx). The field is returned as the ProductUpgradeURL
property when using the GetProductStatus web service
method to query the Activation Server.
See https://demo.eleckey.net/registration_activation.aspx
for a usage example. Under the Upgrade section, the web page uses the GetProductStatus web service method (with the Activation
Key provided by the user) to check for the current product license and display
the upgrade URL as inline frame.
The following ecommerce product ID fields are used for interfacing with
ecommerce providers. In the provided Activation Server, EcommerceProdID1 and
EcommerceProdID2 are assigned to interface with Share-it! and PayPal,
respectively. EcommerceProdID3 and EcommerceProdID4 are not assigned, and you
can use them to interface with other ecommerce providers.
Specify a product ID that matches the one used in your Share-it! order processing system (implemented in the file ShareIt_KeyGen.aspx).
Specify a product ID that matches the one used in your PayPal payment
gateway system (implemented in the file PayPal_KeyGen.aspx).
See Also